Modern computer architectures typically implement a so-called memory hierarchy, in which a variety of memory devices of different capacities and response times, as well as complexity and cost, are considered and allocated for a given computing or storage task. In such hierarchical memory systems, processor registers and caches, which normally operate with the lowest latency and highest bandwidth, are typically considered to be at higher levels in the hierarchy than other memory types, such as system random-access memory (RAM), hard disk drives, and external memory devices.